﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO;
using System.Data;
using System.Data.SqlClient;

namespace DAO
{
    public class PhieuGiaoDAO
    {
        public static string CreatePhieuGiaoId()
        {
            DataTable dataTable = DataProvider.ExecuteReader("sp_CreatePhieuGiaoId", null);
            string ID = null;

            if (dataTable.Rows.Count > 0)
            {
                DataRow dataRow = dataTable.Rows[0];
                ID = dataRow[0].ToString();
            }

            return ID;
        }

        public static DataTable SelectPhieuGiaoAll()
        {
            DataTable dataTable = DataProvider.ExecuteReader("sp_SelectPhieuGiaoAll");
            return dataTable;
        }

        public static PhieuGiaoDTO SelectPhieuGiaoById(string maPhieuGiao)
        {
            List<SqlParameter> sqlParamas = new List<SqlParameter>();
            sqlParamas.Add(new SqlParameter("@maPG", maPhieuGiao));
            DataTable dataTable = DataProvider.ExecuteReader("sp_SelectPhieuGiaoById", sqlParamas);

            PhieuGiaoDTO phieuGiaoDTO = new PhieuGiaoDTO();
            if (dataTable.Rows.Count > 0)
            {
                DataRow dataRow = dataTable.Rows[0];
                phieuGiaoDTO.Ma_PG = dataRow["Ma_PG"].ToString();
                phieuGiaoDTO.Ma_PD = dataRow["Ma_PD"].ToString();
                phieuGiaoDTO.NV_Giao = dataRow["NV_Giao"].ToString();
                phieuGiaoDTO.NgayGiao = DateTime.Parse(dataRow["NgayGiao"].ToString());
                phieuGiaoDTO.ThanhTien = float.Parse(dataRow["ThanhTien"].ToString());
                phieuGiaoDTO.TinhTrang = int.Parse(dataRow["TinhTrang"].ToString());
                phieuGiaoDTO.Ghi_Chu = dataRow["Ghi_Chu"].ToString();
            }
            else
            {
                phieuGiaoDTO = null;
            }
            return phieuGiaoDTO;
        }

        public static bool InsertPhieuGiao(PhieuGiaoDTO phieuGiaoDTO)
        {
            List<SqlParameter> sqlParamas = new List<SqlParameter>();
            sqlParamas.Add(new SqlParameter("@maPG", phieuGiaoDTO.Ma_PG));
            sqlParamas.Add(new SqlParameter("@maPD", phieuGiaoDTO.Ma_PD));
            sqlParamas.Add(new SqlParameter("@nVGiao", phieuGiaoDTO.NV_Giao));
            sqlParamas.Add(new SqlParameter("@ngayGiao", phieuGiaoDTO.NgayGiao));
            sqlParamas.Add(new SqlParameter("@thanhTien", phieuGiaoDTO.ThanhTien));
            sqlParamas.Add(new SqlParameter("@tinhTrang", phieuGiaoDTO.TinhTrang));
            sqlParamas.Add(new SqlParameter("@ghiChu", phieuGiaoDTO.Ghi_Chu));

            return DataProvider.ExecuteNoneQuery("sp_InsertPhieuGiao",sqlParamas);
        }

        public static bool UpdatePhieuGiaoById(PhieuGiaoDTO phieuGiaoDTO)
        {
            List<SqlParameter> sqlParamas = new List<SqlParameter>();
            sqlParamas.Add(new SqlParameter("@maPG", phieuGiaoDTO.Ma_PG));
            sqlParamas.Add(new SqlParameter("@maPD", phieuGiaoDTO.Ma_PD));
            sqlParamas.Add(new SqlParameter("@nVGiao", phieuGiaoDTO.NV_Giao));
            sqlParamas.Add(new SqlParameter("@ngayGiao", phieuGiaoDTO.NgayGiao));
            sqlParamas.Add(new SqlParameter("@thanhTien", phieuGiaoDTO.ThanhTien));
            sqlParamas.Add(new SqlParameter("@tinhTrang", phieuGiaoDTO.TinhTrang));
            sqlParamas.Add(new SqlParameter("@ghiChu", phieuGiaoDTO.Ghi_Chu));

            return DataProvider.ExecuteNoneQuery("sp_UpdatePhieuGiaoById", sqlParamas);
        
        }

        public static bool DeletePhieuGiaoById(string maPhieuGiao)
        {
            List<SqlParameter> sqlParamas = new List<SqlParameter>();
            sqlParamas.Add(new SqlParameter("@maPG", maPhieuGiao));
            return DataProvider.ExecuteNoneQuery("sp_DeletePhieuGiaoById", sqlParamas);
        
        }
    }
}
